Methods and apparatus that support addressable interactive applications

ABSTRACT

Methods and apparatus for supporting targeted advertising and/or other targeted applications in set top boxes which use data and/or applications, e.g., EBIF (Enhanced TV Binary Interchange Format) applications, are described. Application level targeting is supported in which an application running on different STBs presents different application behavior and/or presents different visual sub-elements depending on the content of a subscriber profile on the particular individual STB. In the case of addressability at the Application Layer an EBIF application can target different viewers by checking private User Preference Items at runtime. Addressability at the signaling/platform level is also supported allowing targeting of a specific application or a sub-element within an application to a specific target group. In this scenario the particular applications/sub-elements are loaded on the set-tops that belong to a target group, e.g., satisfy targeting constraints specified in private targeting metadata that is received in an MPEG stream.

RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 13/593,506 filed Aug. 23, 2012 which is hereby expresslyincorporated by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to methods and apparatus which supportaddressable interactive applications, e.g., targeted advertising and/orother user targeted applications on set top boxes, e.g., EBIF (EnhancedTV Binary Interchange Format) applications and/or other types ofapplications.

BACKGROUND OF THE INVENTION

EBIF is the abbreviation for Enhanced TV Binary Interchange Format. TheEBIF standard which has been developed as an OpenCable specification byCable Television Laboratories, Inc. is described in the publiclyavailable specification: Enhanced TV Binary Interchange Format 1.0,OC-SP-ETV-BIF1.0-I06-110128, (Jan. 28, 2011)

EBIF files communicate information and actions to be taken by anapplication such as, for example, an ETV user agent on a STB. The ETV(Enhanced Television) user agent will execute the actions specified anEBIF file such as present a multimedia page including content specifiedin an application and/or EBIF file. An application may include data,parameters used to determine the action to be taken, as well as data tobe presented, e.g., displayed, based on user input and/or one or moreactions being conditions being satisfied. While the current EBIFstandard supports three standard User Preference Items which can be usedin controlling an application, i.e., PostalCode, PrimaryLanguage, andSecondary Language, these user preference items are of only limited usein terms of targeting advertisements to users associated with the steptop box on which an EBIF application is executed.

The EBIF and related OpenCable Tru-2-way specifications as published byCableLabs provide a framework that can be used to provide interactiveapplications that can be broadcast within a MPEG program to all theset-top receivers in the system and will be loaded, processed and run byall set-tops that are tuned to the specific program. Unfortunately, thespecifications in their current format have limitations as there is noprovision to target the application or its contents to a specific targetaudience within the system based on characteristics such as age, incomelevels, services to which a user already subscribes, etc. which can beimportant user characteristics for advertising and/or ad targetingpurposes.

Advertising is an important source of revenue for cable companies,satellite companies and/or other content distributers. Advertisers areoften willing to pay a premium if they are able to target theiradvertisements to a particular audience likely to be interested in theirproduct and/or which is considered a desirable audience to target for aparticular reason, e.g., because of their income level, age, sex orother characteristics.

In addition to providing content distributers a chance to sell targetedadvertising, content distributers, e.g., cable service providers,internet service providers, etc., can find targeted advertising usefulin up selling their own offerings by presenting advertisements forproducts which are upgrades to services and/or plans which a servicesubscriber has while avoiding presenting advertisements for services towhich a subscriber already subscribes.

In view of the above discussion, it should be appreciated that it wouldbe desirable if methods and/or apparatus could be developed which wouldallow for meaningful targeting of specific audiences via set top boxapplications using data and/or applications communicated in accordancewith the EBIF standard and/or other formats and/or standards.

SUMMARY OF THE INVENTION

Methods and apparatus for enabling and implementing addressableinteractive applications, e.g., set top box (STB) applications, that canbe target to a specific user group, e.g., subscriber group or othergroup of users having one or more common characteristics or preferencesare described. In various embodiments interactive applications runningon a STB target users that match one or more user profilecharacteristics specified by the author of the interactive. The approachused to user targeting is not limited to can targeting of an entireapplication but can also be used to target specific sub-elements (pages)within the application to a specific target group.

The described methods and apparatus provide flexibility to utilizeaddressability at application level and present different applicationbehavior and/or present different visual sub-elements for differenttarget user groups. In some such exemplary embodiments the set-tops inthe system run the same application but the behavior of the applicationis different based on the target group the set-top belongs to with thebehavior to be provided to each of various groups being specified by theapplication. For example in the case of addressability at theApplication Layer an EBIF application can target different viewers bychecking the private User Preference Items at runtime and apply theright logic to display the appropriate User Interface.

In another exemplary embodiment addressability at the signaling/platformlevel is used allowing targeting of a specific application or asub-element within an application to a specific target group. In thisscenario the particular applications/sub-elements are loaded on theset-tops that belong to the target group as specified in the signalingassociated with targeting data that is received, e.g., private metadatathat is received in an MPEG stream. Applications and/or applicationsub-elements that do not satisfy the targeting criteria applied to userprofile information stored on a STB are not loaded on to the set topbox. Thus, in accordance with this approach theapplications/sub-elements which are not relevant to a set top box arenot loaded and STBs with different subscriber profiles may, and normallywill be, loaded with different applications and/or application elements.In such an embodiment a set top box which is associated with a user whodoes not satisfy the targeting criteria for a particular applicationwould not be loaded with the particular application.

In some embodiments an end-to-end system for addressability includes: aserver that can configure and manage the addressable qualifiers andattributes for the service delivery platform. In various embodiments, atany given time there is a finite set of addressablequalifiers/attributes defined for the system that are common to and canbe used in regard to the subscribers within the system.

Based on the subscriber data provided/imported to the addressabilityserver, the addressability server builds and manages profiles forindividual subscribers associated with STBs as per the qualifiersspecified. In some embodiments the server unicasts the subscriberprofile associated with a STB in the system to the corresponding STBeither through a push (e.g., server initiated transmission) or pull(e.g., STB initiated request) mechanism.

In some embodiments which use the pull mechanism, the system isconfigured for receivers, e.g., STBs, to poll the server periodically ata configured time intervals to sync and refresh the profile stored onthe STBs. In some but not necessarily all embodiments the set-tops pollthe server every at least once 24 hours to refresh the profile data. Thepolling for different STBs is staggered in some embodiments to evenlydistribute the load on the server over all or a portion of a 24 hourperiod corresponding to a day.

Client software, e.g., a STB application, interacts with theaddressability server to receive and store the subscriber profileinformation on the set-top receiver and makes it available to differentsoftware modules running on the set-top, such as the EBIF UA (EBIF UserAgent), DPI, as well as to interactive applications that can run on theset-top through one or more APIs (Application Programming Interfaces).

The subscriber profile information includes addressable qualifier valueswhich provide information about the subscriber and/or services to whichthe subscriber subscribes. One or more subscriber profiles correspondingto a subscriber can be stored on a STB, e.g., with different subscriberprofiles corresponding to different organizations. The interactiveapplications, in some embodiments, include a digital navigator and EBIFUser Agent software.

In some embodiments an application authoring tool is supported that canprogrammatically query, e.g., determine the set of usable qualifiersdefined by the addressable server at any given time, and can providethem as options for the application developer to include as targetingqualifiers in one or more application that the developer is creating,e.g., as part of a marketing campaign.

In some embodiments a campaign manager module and/or scheduling systemcan query the qualifiers defined by the addressability server and canprovide configuration options to the campaign manager and/or schedulingsystem allowing a campaign to target specific application(s) or STBusers over time based on the qualifier set which is supported.

As discussed above, application level targeting is supported in someembodiments with an application executing one or more differentapplication elements if the conditional logic and targeting qualifierset which define the constraint for executing the individual applicationelements are satisfied based on subscriber profile information stored onthe STB. An application element can be a portion of an application withdifferent application elements providing different functions and/orcorresponding to different advertisements. Thus different applicationportions maybe executed depending on what targeting constraints asubscriber profile satisfies.

In various embodiments signaling level addressability is supported. Forexample, in some embodiments particular EBIF applications are loaded andexecuted if conditions set by conditional logic and correspondingtargeting qualifier values, e.g., parameters specifying desiredsubscriber characteristics and/or other subscriber information,associated with an application are satisfied by addressable qualifiervalues in a user profile or other information set on a set top box. Theaddressable qualifier values included in a subscriber profile stored ona STB may, and in some embodiments are, parameters specifying varioussubscriber characteristics or other subscriber information such asservice subscription information. Exemplary subscriber characteristicswhich may be targeted included sex, income level, age, etc.

In some embodiments an individual application or application element,e.g., page resource, is not sent with the conditional logic andtargeting qualifier values corresponding to the individual application.Rather, in at least some such embodiments the individual application orapplication element is downloaded and executed in response todetermining that the conditional logic and targeting constraintsassociates with the application or application element are satisfied bythe addressable qualifier values stored in a STB, e.g., in a subscriberprofile on the STB.

Applications, application elements as well as conditional logic andcorresponding targeting qualifier values may be sent to an applicationin a plurality of ways. In some embodiments, an MPEG transport stream ofa program channel is used to deliver targeting information,applications, application elements and/or conditional logic used todetermine which applications and/or application portions should beloaded and/or executed by the STB.

Different organizations may generate and store different subscriberprofiles on the same set top box with each of the different subscriberprofiles corresponding to the same subscriber being identified as beingassociated with a particular organization. For example, a STB may, andin some embodiments does store a first subscriber profile correspondingto a first organization, e.g., a Time Warner Cable (TWC) subscriberprofile, for a subscriber and also store a subscriber profilecorresponding to a second organization, e.g., a Verizon telephonesubscriber profile, for the same subscriber. The different subscriberprofiles corresponding to the same subscriber may include the same ordifferent addressable qualifier values depending on the informationavailable to the organization to which the subscriber profilecorresponds.

Organization identifiers may, and in some embodiments are, provided withconditional logic and targeting qualifier values, to facilitateidentification of which of a plurality of subscriber profilescorresponding to a subscriber are to be used when determining whether anapplication portion is to be loaded and/or executed. For example, a TWCorganization identifier may, and in some embodiments is, included withconditional logic and targeting qualifier values so that a STB receivingthe conditional logic and targeting qualifier values will know to usethe addressable qualifier values of the TWC subscriber profile asopposed to those included in another organization's subscriber profile,when determining if a particular application or application element,e.g., a TWC application or application element should be executed.

The methods and apparatus of the present invention are well suited for awide variety of applications. Exemplary applications include ETV EBIFapplications and other applications.

Various additional features and advantages of the present invention arediscussed in the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary system implemented in accordance withsome embodiments of the present invention.

FIG. 2 is drawing illustrating a portion of the service provider'ssystem/headend of FIG. 1 in greater detail.

FIG. 3 illustrates an exemplary customer/subscriber profilecorresponding to an exemplary customer and/or household and, in some butnot all embodiments, an organization, e.g. company such as a serviceprovider.

FIG. 4 illustrates an application, e.g., STB application, in accordancewith an exemplary embodiment of the invention, including a plurality oftarget qualifiers sets, and for each of the target qualifier setcorresponding logical operators used to specify conditions which need tobe satisfied prior to execution of a corresponding executable portion ofthe application.

FIG. 5 illustrates an exemplary application element, e.g., applicationinformation and/or code, which can be delivered on a program channel,e.g., as part of a program and/or MPEG stream, and processed by a STB toprovide functionality if conditions specified in the application elementare satisfied.

FIGS. 6A, 6B and 6C illustrate various exemplary application elements ofthe type illustrated in FIG. 5, which can be delivered to a STB toprovide different functionality depending on which constraints aresatisfied, e.g., by the content of a user subscriber profile stored onthe STB.

FIG. 7 is a flowchart illustrating the steps of an exemplary methodperformed in accordance with some embodiments of the invention.

FIG. 8 is a drawing 800 showing an example in which different content,e.g., different product advertisements, are presented to two differentsubscribers depending on the different target qualifier values andconditional logic being satisfied by addressable qualifier valuesincluded in the subscriber profiles stored in different STBs where theSTBs correspond to the two different subscribers.

FIG. 9 is a block diagram 900 showing exemplary operation of a STBimplementing application level addressability.

FIG. 10 is a block diagram 900 showing exemplary operation of a STBimplementing addressability at a signaling level.

FIG. 11 illustrates an exemplary customer premise device, e.g., a settop box (STB), implemented in accordance with some embodiments of theinvention.

FIG. 12 illustrates an exemplary customer/subscriber profilecorresponding to a household including multiple individuals of differentages.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 100 implemented in accordance with someexemplary embodiments of the present invention. The system 100 supportscontent delivery, e.g., video and audio content and/or other applicationdata delivery, to customer devices, e.g., content playback devices. Thecontent playback devices may, and in some embodiments do include set topboxes, internet capable TVs, computers, mobile cellular phones withinternet capability, etc. Thus, mobile as well as fixed content playbackdevices are supported in at least some embodiments.

The system 100 includes a service provider system 102, e.g., cablenetwork headend, and a plurality of customer premises 104, 106. In thediscussion, service provider system 102 is also referred to as theheadend 102.

The service provider system/headend 102 may be implemented at a serviceprovider's office or site including multiple servers and databases whichare coupled together. In the FIG. 1 example, the headend 102 includes aserver, e.g., broadcast file server (BFS) and/or video-on demand (VOD)server 140, an addressability server 142, an application server 144which includes an ETV application server, content video storage system146, customer database 148, and a business management server 150. Itshould be appreciated that one or more of the various servers and/orelements shown to be included in the headend 102, in some embodiments,reside outside the headend 102. In some embodiments one or more of theservers and/or elements is implemented in a distributed manner, withportions of the server or element residing at different locations insystem 100. The various servers and other components included in theheadend 102 are coupled together by a local network 152. The localnetwork 152 is coupled via one or more network interfaces 181 to othernetworks and/or devices. For example, the headend 102 is coupled vianetwork interface 181 to service provider's communications network 176,e.g., a cable network, and may also be coupled to one or more otherexternal networks.

Via the communications network 176, the devices in the network headend102 can send and receive signaling and/or other information to thedevices located at the customer premises 104, 106 coupled to the cablenetwork 176. Each customer premise 104, 106 includes a modem 120, 126, aset top box 122, 130 and a display device 124, 132 respectively. In someembodiments, modems 120,126 are cable modems. The display device couldbe, e.g., an external television. It should be appreciated that each ofthe STBs 122, 130 can be integrated in a device which also includes adisplay. The STBs support video and, optionally, E-mail functionality.The STBs 122, 130 can be used to send information to the headend 102 inaddition to receiving signaling and/or information from the headend 102.In addition, in some embodiments each customer premise 104, 106 mayinclude one or more IP devices that support internet protocol, such as apersonal computer (PC), laptop, cell phone, etc., in addition to theSTBs. The STBs 122, 130 may, and often do, include DVR functionality andthe storage of user selected content. It should be appreciated thatcustomer premise 104, 106 may also include additional STBs and displaydevices in addition to the ones shown in the figure. In some embodimentsexternal modems such as 120, 126 are not included at the customerpremise 104, 106 rather in such embodiments the STBs 122, 130 include abuilt in modem.

As shown in FIG. 1, communications link 182 traversing the serviceprovider's cable network 176 couples modem 120 to the network head end102's network interface 181. Similarly, modem 126 in the customerpremise n 106 is coupled to service provider's system 102's networkinterface 181 via link 184 which traverses the service provider'snetwork 176.

The BFS and/or VOD server 140, among other things, is responsible fordelivering programming content and/or other information to one or morecustomer STB devices, e.g., including STB 122 and STB 130. Exemplarydelivered programming content includes video on-demand content orderedby one or more customers to the customer devices, e.g., to STB 122and/or other customer devices. In some embodiments a BFS server and aVOD server are implemented as separate individual servers.

The addressability server 142 configures and manages the addressablequalifiers and attributes for the service delivery platform. In variousembodiments, at any given time, there is a finite set of addressablequalifiers/attributes defined for a system that are common to all thesubscribers within the system. The maximum number for the finite set isdetermined by the resource constraint on the various components of thesystem. The addressability server 142 generates and managescustomer/subscriber profiles for a plurality of customers served by theheadend 102. The customer/subscriber profiles are generated based on adefined set of addressable qualifiers/attributes and additionalcustomer/subscriber information provided/imported to the addressabilityserver 142.

Exemplary application server 142 generates and provides applications andapplication data, e.g., such as initial page resources, data/imageresources, target qualifier sets, and/or other application specific datacorresponding to various applications, to customer premise devices suchas STBs. In various embodiments the application server 144 includes anETV application server.

The customer database 144 includes customer information corresponding toa plurality of customers, including customer account information,customer subscription/service information, and information regarding thedevices installed at customer premises. In some embodiments customeraccount information includes, e.g., customer account number, customersubscription/service information, and other billing related information.Customer device information includes device identification and/or otherinformation regarding customer devices such as STBs, modems etc.,installed at various customer premises served by the headend 102. Theinformation in the customer database 144 can, and in some embodimentsis, used to generate subscriber profiles which are loaded onto the STBof the subscriber to which the generated subscriber profile corresponds.The subscriber profiles include account, service subscription and/orother information represented in the form of addressable values, e.g.,parameters, which provide information about the subscriber and/orservices to which the subscriber subscribes.

BM (Business management) server 150 processes billing informationcorresponding to customers serviced by the network headend 102. This mayinclude updating billing charge information in response to changes inservices being provided to the customer, upgrades, new purchases, and/orother activity. Business management server 146 also processes servicesbill payment information, e.g., bill payment transactions, deductionsfrom debit accounts, mail bills, and/or processes discount and/or otherinformation.

FIG. 2 is drawing 200 illustrating a portion of the service provider'ssystem/headend of FIG. 1 in greater detail. The illustrated portion ofheadend 102 shows the elements of the addressability server 142 and theapplication server 144 in greater detail.

The addressability server 142 includes an addressable qualifier set(AQS) 202 including a plurality of addressable qualifiers (AQs) 204through 208, and a plurality of customer/subscriber profiles generatedby the server 142. As discussed above, the addressability server 142configures and manages the addressable qualifiers and attributes arecommon to all the subscribers within the system at a given time. Theaddressable qualifiers/attributes 204 through 208 can be defined in anumber of ways, and in some embodiments include attributes correspondingto individuals, e.g., subscribers, such as Age, sex, subscriber'slocation, ethnicity, income level, subscribed services etc. Howevervarious other types of addressable qualifiers can be defined. Based onthe specified addressable qualifiers in the set 202, the addressabilityserver 142 generates and manages customer/subscriber profiles for aplurality of customers served by the headend 102.

In various embodiments the addressability server 142 unicasts eachsubscriber profile 210, 212, to the associated set-top receiverscorresponding to the subscriber in the system either through push orpull mechanism. In some embodiments, for pull mechanism, the STBs in thesystem are configured to poll the server addressability server 142periodically at a configured interval time to sync and refresh theprofile stored on the set-tops. For example, the STBs may poll theserver 142 every 24 hours to refresh the profile data.

The application server 144 includes an ETV application server 220 thatgenerates and provides ETV applications and application data, e.g., suchas initial page resources, data/image resources, target qualifier sets,and/or other application specific data corresponding to various ETVapplications, to customer premise devices such as STBs. In variousembodiments the ETV application server 220 includes an applicationauthoring module 222 that programmatically query the qualifiers 202defined by the addressable server 142 at any given time and can providethem as options for the application developers to include as targetingqualifiers in one or more applications. The ETV application server 142further includes a campaign management/scheduling module 224, an ETAGmodule 226, a target qualifiers set (TQS) 228, a plurality ofapplications 240 through 244, e.g., ETV eBIF applications, which can bedelivered to the STBs, and application resources 244 through 246corresponding to the applications 240 through 242. In some embodimentsthe campaign management/scheduling module 224 is configured to query thequalifiers in the set 202 defined by the addressability server 142 atany given time and can provide configuration options to the operator totarget a specific application and/or a user interface (UI) correspondingto an application, to one or a group of STBs based on the qualifier set202.

The ETAG module 226 is configured to access and deliver a targetqualifier (TQS) set such as set TQS 228, applications, applicationresources, and application signaling, e.g., ETV EISS signaling, to thecustomer STB devices 122, 128. The target qualifier set 228 includes aplurality of target qualifiers generated by the application authoringmodule 222 based on the accessed AQS 202. The TQS 228 includes a subsetof the qualifiers/attributes defined in the AQS 202 and can be used tosend targeted applications and/or application resources, e.g., userinterface, to one or more STBs in accordance with one feature of someembodiments of the invention. In some embodiments the TQS data isgenerated in eBIF data resource format.

In some embodiments, specific targeted ETV eBIF application may beassociated with a set of targeting qualifiers. In some embodiments sucha targeted application or application resources, are sent to one or moretargeted subscriber STBs when a matching criteria set forth in theapplication's matching logic is satisfied, e.g., when the associatedtarget qualifiers match the addressable qualifiers for the STBs inaccordance with the matching logic. The application resources 224through 246 include EBIF application resources including an initial pageresource and additional data/image resources corresponding toapplications 240 through 242. In some embodiments the page resourcesinclude the UI layout and the application logic while the image resourcecan carry, e.g., PNG/JPEG images.

In some embodiments the ETV application server 144 generates andprovides eBIF application resource data corresponding to ETV eBIFapplications through ETV PIDs included in a program stream. In someembodiments the application and/or application resource data ismultiplexed to a content program stream through a transport multiplexer.

FIG. 3 illustrates an exemplary customer/subscriber profile 300corresponding to an exemplary household including a single individual.The subscriber profile is associated with a subscriber's set top box,e.g., STB 122, in accordance with some embodiments. STB 122 is locatedat the household to which the subscriber profile 300 corresponds.Additional STBs at the household are loaded with the same subscriberprofile in some embodiments. In various embodiments the exemplarycustomer profile 300, also referred to herein as a subscriber orhousehold profile, is generated by the addressability server 142 basedon a set of addressability qualifiers, e.g., attributes, defined by theaddressability server 142 at a given time, and subscriber informationprovided to/imported by the addressability server 142. In accordancewith one aspect, the generated subscriber profile 300 is sent, e.g.,unicast, to the corresponding subscriber STB device and is storedtherein. In various embodiments the subscriber's profile 300 isperiodically updated, e.g., through signaling exchange between theaddressability server 142 that generated and provided the customerprofile 300, and the subscriber's STB 122 where the profile 300 isstored.

As the subscriber profile 300 is generated based on the addressabilityqualifiers/attributes and the subscriber's information, the subscriberprofile 300 includes details, e.g., addressable qualifier values,corresponding to the defined addressable qualifiers discussed withregard to FIG. 2. For example, if at a given time an addressablequalifier set (AQS) includes the following qualifiers/attributes definedby the addressability server 142, such as Subscriber Name, Age, Sex,Location, Annual Income, Occupation, location, e.g., city, Ethnicity,Pets, HBO subscription, on-demand channels subscription, high speed datasubscription, HD channels subscription, long distance callingsubscription, etc., then the generated subscriber's profile 300 wouldinclude qualifier values corresponding to each of the qualifiers for theparticular subscriber to whom the profile 300 corresponds.

The exemplary subscriber profile 300 includes qualifier valuescorresponding to each of the addressable qualifiers for the particularsubscriber, e.g., user of STB 122. For illustration purposes, thesubscriber profile 300 indicates a field showing a given addressablequalifier followed by a colon “:” followed by the qualifier value. FIG.3 illustrates that the subscriber profile 300 includes a field 302showing Name value as John Cortez, a field 304 showing Age value as 45years, a field 306 showing Sex value showing the gender as a male, afield 308 showing annual income value of the subscriber as $80,000, afield 310 showing subscriber's occupation value as a real estaterealtor, a field 312 showing the location value where subscriber/STB 122is located, e.g., a city, as Cherry Hill, a field 314 showingsubscriber's ethnicity value as Hispanic.

The subscriber profile 300 further includes a field 316 showing Pet(s)value as being true which indicates that the subscriber household haspets, e.g., a cat, dog, birds etc. If the Pet(s) value field indicatedthe value as false, that would indicate that the subscriber householddoes not have pets. The subscriber profile 300 further includes fields318 through 326 which indicate values corresponding to addressablequalifier relating subscribed services, indicating various servicessubscribed or not subscribed by the subscriber of STB 122. For example,an addressable qualifier value in the profile 300 shown as “TRUE”indicates that the corresponding service is subscribed, while “FALSE”indicates the service not being subscribed. Field 318 shows HBOsubscription value as being true which indicates that the subscriber/STB122 has HBO subscription. Field 320 shows premium content channelssubscription value as being false which indicates that thesubscriber/STB 122 does not have subscription for one or more premiumcontent channels. The profile 300 may also include details regarding thevarious channels/services subscribed by the customer.

Field 322 shows high speed data subscription value as being false whichindicates that the subscriber does not have high speed data servicessubscribed. Field 324 shows high definition (HD) channel subscriptionvalue as being true which indicates that HD channels are subscribed andfield 326 shows long distance calling (a telephone service feature)subscription value as being false which indicates that the subscriberdoes not have subscription for long distance, e.g., internationalcalling.

Various other types of information fields may be included in acustomer's profile based on the addressable qualifiers defined by theaddressability server 142. The customer/subscriber's information may begathered by the headend 102, e.g., via the subscriber's STB device,e.g., using customer's input through STB device, where the subscriber isencouraged to build a subscriber profile, e.g., using an interactiveapplication on the STB. In some embodiments, at least some customerinformation is available to the addressability server 142 for use ingenerating the subscriber profile 300 through customer subscriptionrecords which may be generated and maintained by the service providerheadend 102 based on information provided by the customer at the time ofservice subscription, or the customer may be asked to fill out suchrecord form at the time of subscription. For purposes of generating thesubscriber profile 300, the addressability server 142 may also obtaincustomer information from the customer database 148.

Various other information fields indicating addressable qualifier valuesthat indicate subscriber's preferences, viewing habits, internet surfinghabits, favorite movies/shows etc., may and in some embodiments are,included in the generated profile 300. Such information fields can alsobe used to target specific applications and/or advertisement campaignsto the subscriber.

In some embodiments, the exemplary subscriber profile 300 includes a setof addressable qualifier values sometimes referred to as an addressablequalifier set (AQS) 202. The subscriber profile 300 is downloaded ontothe STB 122 from the addressability server 142. While a single AQS 202corresponding to a subscriber is shown, different AQSs corresponding tothe same subscriber but different organizations, e.g., companies,networks and/or service providers, may and in some embodiments are,downloaded and stored on the STB 122. Subscriber profiles correspondingto a subscriber but to different organizations may include differentinformation, e.g., different subscription information and/or evendifferent income or age information depending on the information thesubscriber provided to the organization to which the subscriber profilecorresponds. For example a subscriber profile relating to a datingservice or social networking service may include different ageinformation corresponding to a subscriber than a subscriber profilerelating to a telephone or cable service due to the subscriber havingprovided different information to the different organizations.

The exemplary AQS 202 includes a plurality of addressable qualifiervalues for the subscriber to which AQS 202 corresponds where theaddressable qualifier values correspond to addressable qualifiersspecified by the addressability server 142 as discussed above. That is,the addressability server 142 defines what addressable qualifiers are tobe included in subscriber profiles and then the parameter valuescorresponding to the addressable qualifiers are included in theindividual subscriber profiles where the values may vary from subscriberto subscriber. For example, a male subscriber may have an “M” value fora sex addressable qualifier in his profile while a female subscriber mayhave an “F” addressable qualifier value for the value of the sexaddressable qualifier in her profile. In a subscriber profile anaddressable qualifier value may be preceded by an addressable qualifiertype indicator such as SEX before the value “M”, or the addressablequalifier fields in a profile may have a predetermined mapping toaddressable qualifier fields so that the value in a particular filed ofthe profile is known to convey a particular type of information, e.g.,the third field of a profile may be dedicated to storing the SEXaddressable qualifier value.

In some other embodiments, the AQS 202 is not included in the profile300, rather it is stored separately in the STB 122 memory.

In accordance with one feature, when a target qualifier set (TQS) isdelivered to a subscriber's STB, e.g., STB 122, to which the subscriberprofile 300 corresponds, the user agent module on the STB devicecompares the target qualifier values included in the received TQS withthe corresponding addressable qualifier values in the subscriber profile300 according to a specified matching logic which is used to specificconditions or constraints which are based on the comparison betweenvalues in the TQS and the subscriber profile. For example, theconditional logic may specify a match (=) constraint, greater than (>)constraint or a less than constraint. Individual constraints may becombined based on specified logical operates specifying operations suchas AND or OR. Thus, a combination of constraints can be specified basedon one or more target qualifier values with the combination ofconstraints having to be satisfied before a corresponding applicationportion, which may be a sub-element application portion an entirecomplete application, is executed.

Based on the result of matching, different applications and/orapplication resources, e.g., UI's (User Interfaces), product imagesetc., can be launched on the subscriber's STB and shown to the customer.Thus it should be appreciated that using the features of variousembodiments of the present invention, specific targeted applications,advertisements and/or information etc., which are intended for a one ormore target subscribers, can be presented to the intended recipients.

A target application may refer to different variables and/or dataelements corresponding to the application and the ones available to auser agent on a STB device, e.g., those which are stored on the STB.Some of the references that an application can use include EnvironmentProperty references that provides access to variables on the platform,and User Preference Item property references that allow the applicationto query/manage user preferences on the STB. In accordance with oneaspect of some embodiments of the present invention, addressabilitywithin an application, e.g., EBIF application, is implemented by using aprovision to extend exemplary EBIF User Preference items and Environmentproperties as a way of accessing the addressable qualifiers and otherattributes from EBIF application. Thus in some embodiments, exemplaryuser preference items and environment properties are specified thatallow a target application to access and manage thequalifiers/attributes specific to a subscriber as specified in thesubscriber profile, e.g., customer profile 300, on the STB device, andthe target qualifier values received by and/or included in anapplication.

Referring now briefly to FIG. 12 another exemplary set of addressablequalifier values 1200 is shown for another household, e.g., a householdincluding multiple members unlike the household to which set 300corresponds. Addressable qualifier set 1200 maybe loaded onto a STBe.g., STB 128 at customer premise N.

The exemplary set of addressable qualifier values 1200 includesinformation 1201 corresponding to individual customers located at thehousehold to which the set 1200 corresponds as well as addressablequalifiers 1203 which are applicable to the household as a whole. Theinformation 1201 corresponding to the individual members includes a rowcorresponding to each of the individual members of the household towhich set 1200 corresponds with each column 1202, 1204, 1206, 1208,1210, 1212 providing different information. For example, column 1202includes name information, column 1204 includes age information, column1206 include sex information, column 1208 includes income information,column 1210 includes occupation information and column 1212 includesethnicity information. Note that the members of the household vary inage, sex, occupation and, at least in one member of the household,ethnicity. The STB may not be able to determine which viewer is watchingat a particular point in time and/or may not include the full set ofinformation for the various members of the household. In some such casesthe information included in portion 1203 may be used, e.g., average agevalue 1220, minimum age value 1222 and maximum age value 124, fortargeting purposes. However, in some embodiments the STB determineswhich household member's information should be used at a particular timefor determining if targeting constraints are satisfied by selecting theinformation corresponding to the household member most likely to beusing/viewing the output of the STB at a particular point in time basedon the content being output and/or the time of day. Information aboutthe content being viewed, e.g., the type of program being viewed such ascartoon, soap opera, news, history, adult content and/or the programsrating is used by the set top box in some embodiments to make adetermination as to which of the household members is the likely viewer.For example, if a cartoon is being viewed, the STB may select theinformation corresponding to the youngest member of the household as theconstraint information to be used while the cartoon is being viewed. Ifthe content being viewed is history or content which is more than 20years old as indicated by program date information, the STB may, and insome embodiments does, select the addressable qualifiers correspondingto the oldest user, e.g., the qualifier values in the fourth row ofportion 1201 to determine if one or more constraints have beensatisfied. The time of day may, and in some embodiments is used, aloneor in combination to select the information corresponding to one of theusers to use in determining if a constraint is satisfied. For example,the information corresponding to a middle aged user, e.g., theinformation in the first or third row of portion 1201 may be selected ifcontent is being output by the STB between 8 pm and midnight. In view ofthe above discussion it should be appreciated that the STB may, and insome embodiments does select, the information corresponding to one ofthe household members to use to determine, at a particular point intime, if advertising and/or other targeting constraints are satisfiedwith which particular set of user information is used being selectedbased on the time of day and/or the content being output by the STB. Themore general household parameters 1220, 122, 1224, 1226, 1228, 1230,1232, 1234, 1236, 1238 remain applicable at all time of day and are notspecific to a particular user so the STB can use these parameterswithout concern over which of the users may be using the STB at aparticular point in time.

As should be appreciated the set 1201 of information corresponding toindividual household members may be, and in some embodiments is, omittedfrom the set 1200. In at least some such embodiments the set 1200includes the addressable qualifiers in portion 1203 but not those inportion 1201. Alternatively a combination of qualifiers in portions 1201and 1203 may be included or the values of a single household member maybe used in place of the average age 1220, minimum age 1222 and maximumage value 1224. It should be appreciated that while values 1220, 1222and 1224 are not shown in the FIG. 3 embodiment they may be includedexpressly in the set 300 or derived as needed from the informationincluded in the addressable qualifier set 300. The derivation of suchvalues is straight forward given that the set 300 corresponds to asingle individual making the average age equal to the age 304 of theindividual and the minimum and maximum age values also equal to the agevalue 304 of the individual.

As discussed above it should be appreciated that depending on theembodiment the addressable qualifiers for individual household membersmay be omitted and/or the information for a single household membercould be used rather than the general household information. In someembodiments where set top boxes are loaded with addressable qualifierset 1200. While various examples are explained in the context of anexample which uses the set 300, it should be appreciated that the set ofvalue 1200 could be used instead of the set 300 with the set that isused being dependent on the household and number of individuals at agiven household to which the STB implementing the method corresponds.

Using the features of some such embodiments, at runtime the applicationcan access the addressable values corresponding to various targetingqualifiers/attributes and present the interactive UI corresponding to aset of targeting qualifier values and constraints that are satisfied bythe addressable qualifier values included in an individual subscriber'sprofile. Thus, UI and marketing applications, e.g., productadvertisements, can be targeted and presented to specific subscribersbased on the information included in the subscriber's profiles stored ontheir STBs.

Using the features implemented in some embodiments of the presentinvention, the service provider can control and can devise differentapplication behavior and present different UI screens based on thetarget group of subscribers.

FIG. 4 illustrates an exemplary application 400, e.g., an ETVapplication, which is communicated to STBs in accordance with someembodiments. The application 400 includes an application identifier 402which identifies the application and application code 404 which is to beexecuted when a STB runs the application 400 regardless of the contentof the subscriber profile stored on the STB. The application includes aplurality of application portions, e.g., segments or modules, shown incolumn 412 with each row of column 412 showing a different applicationportion. The first row of column 14 corresponds to a first ad campaignapplication portion which may be implemented as a first user interfaceapplication portion. The second row of column 412 corresponds to asecond ad campaign application portion which may be implemented as asecond user interface application portion. The third row of column 412corresponds to a third ad campaign application portion which may beimplemented as a third user interface application portion.

Columns 406 and 408 include a target qualifier sets and logic operationsin row 406, 408 respectively. Each row includes the target qualifier setand conditional logic which must be satisfied if the application portionincluded in column 412 of the same row is to be executed. While shown asseparate columns 406, 408 it should be appreciated that the informationshown in columns 406 and 408 for a given row will normally becommunicated together as part of a string or other expression whichincludes both target qualifier values and combination logic in a mannerthat sets forth a logical constraint that must be satisfied for thecorresponding program portion to be executed. Thus, constraintsexpressed by the combination of target qualifier set 1 and logicoperation set 1 must be satisfied for the executable ad campaign programportion corresponding to user interface 1 to be executed.

The target qualifier set includes target qualifier values correspondingto addressable qualifiers of interest with regard to an entity seekingto promote ad campaign/user interface 1.

Exemplary application 400 is used in some embodiments whereaddressability at application level is implemented, e.g., wheredifferent portions of an application may be executed depending on whichcombination of target qualifier values and constraints are satisfied bythe addressable qualifier values in the subscriber profile stored on theSTB that receives and implements application 400. In at least someembodiments of the type illustrated in FIG. 4, the TQS set andconstraint information is delivered along with the applicationdata/executable application portions. However, it should be appreciatedthat rather than include the actual executable application portions suchas shown in column 412, the executable portions can be identified byidentification information such as that shown in column 410 with thecorresponding program portion being retrieved and/or executed inresponse to the corresponding target qualifier set and conditions beingsatisfied by the information included in the subscriber profile storedon the STB.

The STB receiving the application 400 processes the targetinginformation included in the application, e.g., the targeting informationincluded in columns 406 and 407 and performs a matching operation,according to the specified conditional application logic. As part of theprocess, the target qualifier values included in the target qualifierset shown in each row is compared to the corresponding values includedin the subscriber profile 300 If the constraints corresponding to anapplication portion are satisfied, the STB executes the correspondingprogram portion, e.g., presents a specific user interface from aplurality of user interfaces thereby targeting the application 400 tothe user and/or implementing an ad campaign having targeting criteriawhich are satisfied by the user information stored in the subscriberprofile on the STB.

In accordance with one aspect of some other embodiments, addressabilityat a signaling level is achieved allowing an application to receiveapplication elements, e.g., application information, and/or executableapplication code, in a stream along with application portion targetinginformation. The combination of application elements and/or applicationportions and conditional logic is referred to herein as a set of programinformation.

FIG. 5 illustrates a set of exemplary application information which canbe received and processed by an application or module, e.g., a UserAgent application or module or another application being executed on aSTB. The set of program information 500 includes a target qualifier set502, e.g., a set of target qualifier values to be compared tocorresponding addressable qualifier values in a subscriber profile,logic operation information 504 setting forth logical operations and/orconstraints to be satisfied given the parameters, e.g., targetingqualifier values, included in element 502. In addition, to elements 502and 506 the set of application information 500 may and sometimes doesinclude an application identifier 506 which identifies which one of aplurality of applications on the STB is check the target qualifier setand logic constraints specified and retrieve or execute thecorresponding application portion when the constraints for execution ofthe corresponding application portion are satisfied, e.g., based on acheck of the subscriber profile stored on a STB receiving the set ofapplication information 500. The set of information normally includesone of elements 508 or 510 but may include both. Element 508 is anapplication portion identifier which identifies a portion of anapplication to be executed when the constraints specified by elements502 and 504 are satisfied. The STB receiving and processing informationset 500 may use the information in element 508 to retrieve, e.g.,download, the identified application portion. The identified applicationportion may be a complete application to be executed or a portion of anapplication to be executed, e.g., by the application identified byoptional element 506. As an alternative to including the identifier inelement 508, or in addition to the identifier included in element 508,the set of application information 500 may include the applicationportion 510, e.g. page resource content and/or executable code, therebyeliminating the need for the STB to retrieve the application portioncorresponding to the information set 500 since, at least in theparticular embodiment in which optional element 510 is included, theapplication portion is included in the set of application information500.

FIGS. 6A, 6B, 6C illustrate how application information sets 600, 650,680 can be used to control the presentation of different user interfacesas part of first, second and third ad campaigns which are the same as orsimilar to those to which the first, second and third rows of the FIG. 4embodiment correspond. Note how the application information set 600 ofFIG. 6A communicates the same or similar information to that previouslydescribed with regard to row 1 of the FIG. 4 embodiment. Note also howthe application information sets 650, 680 of FIGS. 6B and 6C communicatethe same or similar information to that previously described with regardto rows 2 and 3 of the FIG. 4 embodiment.

Significantly, in the FIG. 6A-6C embodiments, a set top box need notload each of the three application portions 1, 2 and 3 but only the onewhich is relevant and to be executed by the STB which process theapplication information sets 600, 650, 680.

In the FIG. 6A, 6B, 6C examples, columns 602, 652, 682 communicateinformation of the type described with regard to column 502 of FIG. 5.Columns 604, 654, 684 communicate information of the type described withregard to column 504 of FIG. 5. Similarly columns 606, 656, 686communicate information of the type described with regard to column 506while columns 608, 658 and 688 communicate information of the typedescribed with regard to column 506 of FIG. 5. Application programportions are included in each of options elements 610, 660, 690 in theFIG. 6 embodiment, e.g., with Application portion 610 corresponding to afirst ad campaign and/or user interface, application portion 660corresponding to the second ad campaign and/or user interface andapplication portion 690 corresponding to a third ad campaign and/or userinterface. Application portions 610, 660, 690 may be independent andfully executable applications or application portions which are executedby another application, e.g., an EBIF user agent or other module runningon the STB which receives the program information sets 600, 650, 680.

In accordance with one aspect of some other embodiments, addressabilityat signaling level is achieved by using privately defined applicationmeta-data item descriptors, in addition to the regular descriptors thatare carried over in an EISS PID in an MPEG-2 transport program stream.In some such embodiments, a method to support addressability throughsignaling is implemented that uses the private meta-data descriptors insignaling. Thus in some embodiments an exemplary specific descriptor isdefined that carries a string payload in a well defined syntax that canconstitute a predicate logic for specifying the targeting profile.

The user agent module in a STB device processes the signaling along withthe targeting meta-data and can decide which initial page resourcecorresponding to an application should be presented to thesubscriber/viewer based on the criteria match with the target profile onthe set top box. In some embodiments, if there is no match the useragent can resolve to the default resource in the signaling and presentthe default UI and/or image corresponding to the application.

The advantage of this option is that the target group for theapplication can be specified independent of application authoring andcan be specified dynamically by the campaign manager and/or by theapplication scheduling system. Also, this dynamic approach gives theflexibility to postpone the targeting decision until just right beforethe moment when the application is going to playout, e.g., be executed.

FIG. 7 is a flowchart 700 illustrating the steps of an exemplary methodperformed by a customer premise device, e.g., set top box 122, inaccordance with some embodiments of the invention. For discussionpurposes, consider that the STB 122 is used to implement the method offlowchart 700.

The method starts in step 702 with the set top box being placed intooperation at a customer premise. Operation proceeds from start step 702to steps 704, 706, and 708 which are performed asynchronously inparallel in some embodiments. Step 704 shown using a dashed line box isoptional and is performed in some embodiments but not necessarily in allembodiments. Step 708 which is also shown using a dashed line box isoptional and is performed as an alternative to step 706 in someembodiments. However in some embodiments, both steps 706 and 708 areperformed to receive target qualifier values and conditional logiccorresponding to an application and/or application portion.

In step 704 a request for a subscriber profile associated with the STB122 is sent, e.g., to the addressability server 142 or another server inthe headend 102. In response to the request, the addressability server142 sends the subscriber profile, e.g., profile 300, including one ormore addressable qualifier values to the STB 122. When step 704 isskipped, operation proceeds from step 702 to steps 705, in addition toproceeding to steps 706 and 708 which correspond to parallel processingpaths. Processing and the receipt of data, applications and/orapplication data, may occur in a asynchronous manner with different databeing received at different times. Accordingly it should be appreciatedthat while some processing paths are shown in parallel, the operationsfrom a time perspective may occur in a sequential manner or in paralleldepending on when data is received.

In step 705 the STB 122 receives a subscriber profile associated withthe STB 122, e.g., subscriber profile 300, including one or moreaddressable qualifier (AQ) values, the one or more addressable qualifiervalues including at least one of an age value, sex value, income value,or a service subscription value. In some embodiments, step 705 includesperforming step 710. In step 710 the STB receives one or moreaddressable qualifier (AQ) values on a periodic basis, e.g., step 710 isperformed periodically. The periodically received AQ values may be newvalues corresponding the same or new addressable qualifiers specified bythe addressability server 142. In some embodiments, an updatedsubscriber profile is received periodically from the addressabilityserver 142. Operation proceeds from step 705 to step 714 wherein thereceived subscriber profile is stored on the STB 122. Operation proceedsfrom step 714 to step 716.

Referring to steps 706 and 708. Steps 706 and 708 show two differentapproaches used in the present invention for communicating targetqualifier (TQ) values corresponding to an application or an applicationelement, and conditional logic relating to the TQ values. In someembodiments step 706 is performed wherein the TQ values and conditionallogic are received with the application. In step 706 the STB receives aset of target qualifier (TQ) values corresponding to a first portion ofan application and conditions, e.g., conditional logic, relating to theset of target qualifier values in private EBIF user preference items. Insome such embodiments the application is communicated along withapplications elements, targeting qualifier values and conditional logicto be applied to match the TQ values to the AQ values stored in thesubscriber profile in the STB. In some embodiments the private EBIF userpreference items include at least one private user preference item namewhich is prefixed with an “x-” or “X-”. Operation proceeds from step 706to step 716. In some embodiments the application is an EBIF applicationand the first portion of the application is one of a plurality ofdifferent user interface portions of said EBIF application. In someembodiments the first portion of said application is the entire EBIFapplication.

Referring now to step 708 which is performed in some embodiments. Step708 illustrates an approach where TQ values corresponding to anapplication or an application element, and the conditional logicrelating to the TQ values are received via application signaling but notwith the entire application. The corresponding application orapplication element may be downloaded when a matching criteria betweenthe received TQ values and the AQ values in the subscriber profile 300is satisfied in accordance with the conditional logic relating to thereceived TQ values. In step 708 the STB receives a set of targetqualifier (TQ) values corresponding to a first portion of an applicationand conditions, e.g., conditional logic, relating to the set of targetqualifier values in private metadata communicated over a program channelused to communicate a multimedia program. In some such embodiments theprivate metadata is MPEG compliant private metadata. In some suchembodiments said application is an EBIF application and the firstportion of the application is a first user interface portion of saidapplication. In some embodiments the first user interface portion is oneof a plurality of different user interface portions executable by a UserAgent on the set top box depending on whether the conditional logicrelating to the received TQ values corresponding to the first portion ofthe application are satisfied by the corresponding AQ values in thesubscriber profile on the STB. Operation proceeds from step 708 to step716.

Returning now to step 716. In accordance with one feature of theinvention, in step 716 a user agent on the STB performs an operation todetermine if conditions, e.g., conditional logical operations relatingto the set of TQ values corresponding to the first portion of theapplication, e.g., user interface/initial page resource, are satisfiedby the one or more addressable qualifier values in the subscriberprofile, e.g., subscriber profile 300 or 1200 depending on the STBimplementing the method.

As discussed above in some embodiments the subscriber profile used inthe STB corresponds to a single individual such as in the case of theFIG. 3 example or multiple users such as in the case of the FIG. 12example where the household to which the STB implementing the methodincludes multiple, e.g., 4, individual members for which individualinformation is available.

Option step 717 is used in at least some embodiments to determine whichqualifier values are to be used. Step 717 may include selecting thetarget qualifier values corresponding to one of a plurality of householdmembers to use at the point in time step 717 is being implemented. Theselection of which household member's target qualifier values is made,in some embodiments, based on the content being viewed and/or the timeof day. For example, viewing and/or outputting of cartoons would resultin the qualifier values corresponding to the youngest household memberbeing selected for use while watching of old programs or historyprograms would result in the oldest household member's target qualifiervalues being used. The qualifier values applicable to the household ingeneral, e.g. those in portion 1203 of the set 1200 would also beselected for use in step 717. Note that 717 is normally skipped whenthere is information for only a single household member in the set ofinformation 300 or 1200 since there is no uncertainty as to which set ofvalue should be used in such a case.

In various embodiments the step 716 of determining includes performing acomparison operation shown in step 718 and making a decision based onthe comparison illustrated in step 720. In step 718 the STB compares anaddressable qualifier value in said subscriber profile to acorresponding target qualifier value in the set of target qualifiervalues (received in step 706 or 708) to determine if a condition,expressed as a logical operation between said addressable qualifiervalue in the subscriber profile and the corresponding target qualifiervalue, is satisfied. For example, the conditional logic may require theSTB to compare an addressable qualifier value, e.g., “income value”stored in the subscriber profile 300 to a specified corresponding targetqualifier value, e.g., $50,000, to determine if a specified condition,e.g., less than, equal to, greater than, is satisfied. The condition maybe a logical operator such as discussed above.

Next in step 720, a decision is made regarding an action to be performedas part of the determination step, based on the result of comparison andthe operation proceeds according to the decision. Thus if thecondition(s) are satisfied the operation proceeds from step 720 to step722 otherwise the operation proceeds to step 724.

In step 722, following the determination that condition(s) aresatisfied, the STB executes the first portion of the application.Operation proceeds from step 722 to step 726 wherein the user agent onthe STB presents a user option and/or content corresponding to the firstportion of the application, e.g., on a display device. The user optionand/or content may be an advertisement audio-video clip, text message,an image etc.

Operation continues over time as represented by the loop back to thebeginning of processing.

Returning to the discussion of step 724. In step 724 the STB checks ifthere are any additional set of target qualifier values corresponding toadditional application portions and associated conditional logic whichis satisfied by the addressable qualifier (AQ) values in the profile. Itshould be appreciated that the STB may receive additional set of targetqualifier (TQ) values corresponding to other applications or applicationportions along with conditional logic to apply for comparing the TQvalues to AQ values. Step 724 is performed to check if there are anyother application portions associated with a set of TQ values andconditional logic which is satisfied. If it is determined in step 724that there is another such application portion associated with a set ofTQ values and conditional logic which is satisfied, the operationproceeds from step 724 to step 728 otherwise the operation proceeds tostep 730.

In step 728 the STB executes the application portion associated with acombination of satisfied conditional logic and associated set of TQvalues, that is, the STB executes the application portion for which theassociated conditional logic relating to the TQ values is satisfied bythe AQ values in the subscriber profile. Operation proceeds from step728 back to the beginning of processing and may continue as indicated bythe loopback.

In step 730 the STB executes a default application following thedetermination in step 724 that there is no other application portionassociated with a set of TQ values and conditional logic which issatisfied. Operation proceeds from step 730 back to the beginning ofprocessing with the loop representing that processing in the STBcontinues on an ongoing basis.

FIG. 8 is a drawing 800 showing an example in which different content,e.g., different product advertisements, are presented to two differentsubscribers depending on the different target qualifier values andconditional logic being satisfied by addressable qualifier valuesincluded in the subscriber profiles stored in different STBs where theSTBs correspond to the two different subscribers.

Drawing 800 illustrates that STBs corresponding to two differenthousehold, e.g., household 1 STB 804 corresponding to household 1 801and household 2 STB 806 corresponding to household 2 803, have differentcorresponding subscriber profiles (SP) SP1 820 and 830 stored on themrespectively. Both STBs 804 and 806 have received the same ETVapplication 820 and two target qualifier sets TQS1 824 and TQS2 828including target qualifier values. TQS1 824 corresponds to a firstportion of the ETV application 828 which when executed displays anadvertisement for a product PROD1 822. TQS2 826 corresponds to a secondportion of the ETV application 828 which when executed displays anadvertisement for a product PROD2 826. In the example, it is illustratedthat the household 1 STB 804 determines that the conditional logicrelating to the TQS1 824 is satisfied by the addressable qualifiervalues in SP 1 820. Accordingly the STB 804 executes the first portionof the ETV application 828 and presents the advertisement for productPROD1 822 on the display device 810 as should be appreciated from thefigure.

On the other hand, the household 2 STB 806 determines that theconditional logic relating to the TQS2 828 is satisfied by theaddressable qualifier values in SP 2 830. Accordingly the household 2STB 806 executes the second portion of the ETV application 828 andpresents the advertisement for product PROD2 826 on the display device812 as shown.

In various embodiments addressability at an application level issupported and used. FIG. 9 is a block diagram 900 showing exemplaryoperation of a STB implementing application level addressability.

In FIG. 9, element 902 represents the receipt of set top boxaddressability information data, e.g., subscriber profile information,which is stored on the STB. Box 904 represents user agent operation onthe STB. The STB uses targeting information 906, 908, 910, 912 includedin a Private User Preference Item 904 to determine which user interface922, 924, 926 to present to a user of the STB based on addressablequalifier values included in the subscriber profile stored on the STB.The EBIF application logic 920 running on the STB boxes comparessubscriber profile information to target qualifiers and determines whichof the user interfaces 922, 924, 926 should be presented by the STBbased on matching results.

In FIG. 9, the STB uses addressability at an application level andpresents different application behavior and/or presents different visualsub-elements for different target groups. In this scenario multiple STBsin the system may run the same application but the behavior of theapplication can and often will be different based on the target groupthe set-top belongs to.

FIG. 10 is diagram 1000 of an example of utilizing in addressability ina STB at the signaling/platform level by which one can target a specificapplication or a sub-element within an application to a specific targetgroup. In this scenario the application/sub-element is loaded on theset-top boxes that belong to the target group as specified in thesignaling but not on other STBs.

In the FIG. 10 example set top box addressability information data 1002,e.g., a subscriber profile, is supplied to and stored on the STB. Inaddition a private metadata item descriptor 1004 used for targeting issupplied to the STB, e.g., in an MPEG stream.

The user agent processes the private metadata item 1004 comparingtargeting criteria information 1002 included therein to information,e.g., addressable qualifiers in the subscriber profile information 1002to determine which of the page resources 1008, 1010, 1012 should beloaded and executed. Assuming the targeting criteria corresponding topage resources 1008, 1010, 1012 are satisfied, they will be loaded andexecuted as represented by blocks 1008, 10101, 1012 shown at the top ofFIG. 10. However, if some of the targeting criteria are not satisfied,the page resources whose targeting criteria are not satisfied will notbe downloaded and executed, e.g., displayed. Thus, the applicationportions and/or applications which are downloaded and executed will varyin the FIG. 10 embodiment from STB to STB depending on the contents ofthe subscriber profile stored on the particular STB.

FIG. 11 illustrates an exemplary customer premise device 1100, e.g., aset top box (STB) implemented in accordance with some embodiments of theinvention. The customer device may be used as any of the STB's 122, 128shown in FIG. 1 and/or the STBs 804, 806 shown in FIG. 8. In someembodiments the customer device 1100 implements the method of flowchart700.

As shown, in some embodiments the customer device 1100 is coupled, e.g.,via an interface 540, to a display device 1150, e.g., a television (TV),or another device for presenting program content. In some embodimentsthe output device 1150 is integral to the customer device 1100 orcoupled as shown via a communications interface. The customer device1100 includes various modules which are configured to perform thefunctions/operations corresponding to the steps illustrated in flowchart700. Completely hardware based or completely software based modules maybe used. However, it should be appreciated that any combination ofsoftware and hardware (e.g., circuit implemented) modules may be used toimplement the functions. As should be appreciated, the modules used inthe customer device 1100 control and/or configure the customer device1100 or elements therein such as the processor 1106, to perform thefunctions of the corresponding steps illustrated and/or described in themethod of flowchart 700 of FIG. 7. In some embodiments one or moremodules together perform the operation corresponding to one or moresteps shown in flowchart 700.

The customer device 1100 includes an Input/Output (I/O) interface 1102,a processor 1106, a codec (Coder/Decoder) 1108, and a storage device,e.g. a memory 1112 coupled together via a bus 1110. The various elementsof the customer device 1100 can exchange data and information over thebus 1110. Via the I/O interface 1102, the secure device 1100 canexchange signals and/or information with other devices and/or systemelements such as the servers in the network headend 102, via thecommunications network 176.

The I/O interface 1102 includes a receiver 1104 and a transmitter 1105that support the receipt and/or transmission of content, and/or otherinformation from/to different servers. In some embodiments the I/Ointerface 502 also includes, e.g., an infrared signal receiver toreceive signals from a user remote control device. In some embodimentsthe I/O interface 502 includes an in-built modem which supportsreceiving content. In some embodiments the receiver is configured toreceive a subscriber profile associated with the set top box 1100,including one or more addressable qualifier values, said one or moreaddressable qualifier values including at least one of an age value, sexvalue, income value or service subscription value. In some embodimentsthe receiver 502 is further configured to perform the functionsdiscussed with regard to steps 705, 706, 708.

The processor 506, e.g., a CPU, executes routines 514 and one or moremodules and controls the customer device 1100 to operate in accordancewith the invention. To control the customer device 1100, the processor1106 uses information, various modules and/or routines includinginstructions stored in memory 1112. The Codec 1108 is implemented as amodule and is capable of performing encoding and/or decoding operationson a digital data stream or signal.

In addition to the routines 1114, the memory 1112 in some embodimentsincludes a determination module 1116, an application control module1120, a presentation control module 1122, a request generation module1124, received subscriber profile 1126, received set of target qualifiervalues, e.g., set of target qualifier values corresponding to a firstportion of an application, and one or more applications 1132.

Routines 1114 include communications routines and/or control routines.The determination module 1116 is configured to determine if conditionsrelating to a set of target qualifier values corresponding to a firstportion of an application are satisfied by the one or more addressablequalifier values in said subscriber profile. The determination modulemay include one or more sub-modules and performs the functionscorresponding to step 716 discussed with regard to FIG. 7. For example,the determination module 1118 includes a comparison module 1118configured to compare an addressable qualifier value in said subscriberprofile to a corresponding target qualifier value in said set of targetqualifier values to determine if a condition, expressed as a logicaloperation between said addressable qualifier value in the subscriberprofile and the corresponding target qualifier value, is satisfied.

The application control module 1120 is configured to execute said firstportion of said application when it is determined that said conditionsrelating to the set of target qualifier values corresponding to thefirst portion of said application are satisfied by said one or moreaddressable qualifier values in said subscriber profile. Thepresentation control module 1122 is configured to present a user optionand/or content corresponding to the executed application or applicationportion, e.g., on the display device 1150. The user option and/orcontent may be an advertisement audio-video clip, text message, an imageetc. The request generation module 1124 is configured to generate arequest for the subscriber profile 1126 including said at least oneaddressable qualifier value and send the request to a server, e.g., viathe I/O interface 1102. In some embodiments the subscriber profile 1126including at least one addressable qualifier value is received by thecustomer device 110 in response to the request.

The received subscriber profile 1126 is stored in the memory 1112 andmay be updated periodically in accordance with the invention. One ormore sets of target qualifier values such as received set of targetqualifier values 1130 may be received from time to time and are storedin the memory 1112.

Embodiments and examples relating to Addressability at Application Levelin EBIF applications will now be described. CableLabs ETV-EBIFspecification defines a binary format for ETV application that canconsist of many EBIF resources including an initial page resource andadditional data/image resources. The page resource contains the UIlayout and the application logic while the image resource can carryPNG/JPEG images. The specification also defines a reference model forapplication to refer to different variables and data elements within theapplication and the ones exposed by the user agent. Environment Propertyreference is one of the many reference type defined in the referencetable of the EBI resource that provides access to variables on theplatform. Also, there is also User Preference Item property referencewhich allows the application to query/manage user preferences on theset-top.

For implementing addressability within an EBIF application, the novelapproach to targeting of the present invention extends the EBIF UserPreference items and Environment properties as a way of accessing theaddressable qualifiers and other attributes from EBIF application. Usingthis interface, at runtime the application logic can access the valuesof various targeting qualifiers/attributes to determine which group theset-top/subscriber belongs to and present the interactive UIaccordingly.

The advantage of this option is that the application author has controland can devise different application behavior and different UI screensbased on the target group. The disadvantage of this option is that theapplication has to change if the target group has to change.

The ETV-EISS specification allows for privately defined applicationmeta-data item descriptors. The technique implemented to supportaddressability through signaling uses this private meta-data descriptorin signaling. For this purpose, in some embodiments a novel specificdescriptor is defined that carries a string payload in a well definedsyntax that can constitute a predicate logic for specifying thetargeting profile.

The User Agent operating on the STB processes the signaling along withthis targeting meta-data and can decide which initial page resource tobe presented to the viewer based on the criteria match with the targetprofile on the set-top. If there is no match the user agent can resolveto the default resource in signaling.

The advantage of this option is that the target group for theapplication can be specified independent of application authoring andcan be specified dynamically by the campaign manager and/or by theapplication scheduling system. Also, this dynamic approach gives theflexibility to postpone the targeting decision right before the momentwhen the application is going to playout, e.g., be executed.

Various exemplary features will now be described in the context of anexemplary implementation in which an EBIF User Agent running on a STBimplements addressability functionality supporting targetedadvertisements in accordance with the present invention. Examples of asuitable format for an Addressability Qualifier Set (AQS) used in someembodiments will be described below. Also how to deliver and manageaddressability data to a STB, how to refer to that data by EBIFapplication, etc. will be described Also described are approaches to howto achieve targeting including what the Targeting Qualifier Set format(TQS) can, and in some embodiments is, and how a User Agent can use theTQS data in combination with received application targeting rules, e.g.,constraint logic, in deciding whether or not to launch a targetedapplication portion, e.g., an entire application or sub-element of anapplication are described.

Addressability Qualifier Set Format

In some embodiment the Addressability Qualifier Set format that is usedis transparent to the ETV EBIF User Agent operating on the STBs. AClient Platform sometime referred to herein by the identifier (DN whichstands for Digital Navigator), is also implemented in some embodiment inthe STB. The Client platform is responsible in some embodiments formanaging, e.g., storing and/or obtaining updates to, an AddressabilityQualifier Set, e.g., a subscriber profile, cached in the STB on whichthe Client Platform is installed and running. In some embodiments ClientPlatform APIs are provided to allow a User Agent on the STB to accessthe subscriber profile information, e.g., including AQ values includedin the stored subscriber profile, via the Client Platform.

In some embodiments a Client Platform (DN) downloads and manages the AQSand provides APIs for User Agent to query Qualifier's values by name.

In some embodiments a User Agent on a STB implements an event mechanismto notify an EBIF application of an AQS update event.

In some embodiments EBIF Applications access targeting information in amanner consistent with the current version of the EBIF standard usingwhat are known as a Private User Preference Items.

In the current EBIF specification, Private User Preference Items' namesare prefixed with “x-” or “X-”.

For example, if a qualifier name is “HBOSubsciption”, the correspondingprivate user preference item name would be “x-HBOSubscription” in someembodiments.

The qualifiers' accessability to EBIF application may restricted bybusiness rules.

The Client Platform (DN) may implement this access policy. The DN APIsreturn success if access is OK. Otherwise, return failure. That is, ifthe specified Private User Preference Item's and the correspondinglogical constraints are satisfied, success of the constraints forimplementing a corresponding application or application part will bedetermined and the corresponding application part will be executedand/or otherwise used by the User Agent running on the STB. Otherwisethe application corresponding to constraints will not be executed.

In EBIF specification, private user preference item maybe associatedwith an application having an identical Organization Identifier to anOrganization Identifier included in the private user preference item.Thus, whether a private user preference constraint is satisfied depends,in at least some embodiments, on use of information corresponding to thesame organization as the Organization Identified by the OrganizationIdentifier included in the private user preference item. For example, insome embodiments satisfaction of a private user preference including aTWC identifier is determined to be satisfied or not using informationincluded in a subscriber profile associated with, e.g., including, thesame Organization Identifier (e.g., TWC) as the private user preferenceconstraint being checked.

For targeting, a User Agent on a STB determines the access compatibilitybased on DN API's return result mentioned above, i.e., success orfailure of a specified targeting constraint.

The private user preference items defined by the Addressable QualifierSet are not mutable in some embodiments.

Consider the Following Addressability Qualifier Set (Aqs) Example:

AQS Name is case-insensitive, value type should be well defined, likeString, Integer, Boolean, Integer Range, String Range, etc. Detaileddefinitions are outside of this document's scope.

A User Agent retrieves AQS values by name through DN APIs. So the AQSdata format is transparent to User Agent running on the STB.

The following is an example of an AQS set in XML format. It contains 5qualifiers:

  <?xml version=″1.0″ encoding=″UTF-8″?> <data>   <SisEbifQualifier>   <row number=”1”>      <name>Age</name>    <value>40</value>   <type>Integer</type>  </row>     <row number=”2”>     <name>City</name>    <value>Horsham</value>    <type>String</type> </row>     <row number=”3”>      <name>FirstName</name>   <value>John</value>    <type>String</type>  </row>     rownumber=”4”>      <name>HBOSubscription</name>    <value>TRUE</value>   <type>Boolean</type>  </row>     <row number=”5”>     <name>Sex</name>    <value>Male</value>    <type>String</type> </row>   </SisEbifQualifier> </data>

Exemplary STB Subscriber Profile:

The following exemplary STB profiles show 5 addressable qualifiersavailable for targeting purposes, e.g., available to EBIF targetingapplications. The exemplary subscriber profiles are loaded onto the STBcorresponding to the subscriber to which the profile relates. Thesubscriber profiles 1 include addressable qualifiers which areconsistent with and intended to be used in a system where the aboveexemplary AQS set is used. In the following exemplary subscriberprofiles, the addressable qualifier name precedes the value of theaddressable qualifier.

Exemplary Subscriber Profile 1—for Subscriber 1 Corresponding to STB1 1) “Age”—40 2) “City”—Horsham 3) “FirstName”—John

4) “HBOSubscription”—true

5) “Sex”—Male Exemplary Subscriber Profile 2—for Subscriber 2Corresponding to STB 2 6) “Age”—22 7) “City”—Horsham 8) “FirstName”—Jane9) “HBOSubscription”—False 10) “Sex”—F

An example of a Targeting Qualifier Set (TQSs) will now be described.

EBIF targeted applications may be associated with a Targeting QualifierSet, which includes targeting qualifiers which are a subset of a STB'sAddressability Qualifier Set plus one or more logical set operators suchas “All”, “Any” or “None” that are used when determining if thequalifier values in a TQS match the corresponding addressable qualifiervalues in a STB's AQS.

In some embodiments TQS data is formatted in an EBIF data resource withmultiple tables, each table includes matching logic, an application lid(local identifier) and a set of qualifiers for matching purposes.

Targeting Qualifier Set location information is delivered to STBs alongwith the STBs associated application signaling. TQS information maybe,and in some embodiments are communicated to a STB in an ApplicationInformation Descriptor's private data field, e.g., as private Metadatain a MPEG transport or program stream.

In some embodiment the Targeting Qualifier Set includes data provided ina standard EBIF data resource format. For example, if the EBIF resourceis generated using TvWorks XDK authoring tool, the following is anexample of what its XML file looks like:

  <?xml version=″1.0″ encoding=″UTF-8″?> <data>    <TQS>    <row>    <name>op</name>   <value>All</value>   <type>string</value>  </row>   <row>     <name>app</name>   <value>male.pr</value>  <type>string</value> </row>    <row>     <name>City</name>  <value>Horsham</value>   <type>string</value>  </row>    <row>    <name>Sex</name>   <value>Male</value>   <type>string</value> </row>    </TQS> <TQS>    <row>     <name>op</name>  <value>Any</value>   <type>string</value>  </row>    <row>    <name>app</name>   <value>femal.pr</value>   <type>string</value> </row>    <row>     <name>City</name>   <value>Broomfield</value>  <type>string</value>  </row>    <row>     <name>Sex</name>  <value>Female</value>   <type>string</value>  </row> </TQS> <TQS> ...</TQS> ... <TQS> ... </TQS> </data>

Keywords:

-   -   TQS—XML tag, defines one group of viewers sharing the same        targeting EBIF application with same matching criteria.    -   op—The first element of TQS, indicate what logic operation apply        To all the qualifiers. Valid values are “Any”, “All” and “None”,        they are case-insensitive    -   app—second element of TQS, indicate what EBIF application to run        after all qualifiers matched. Its value MUST be relative name.        No absolute name is allowed. The app shares the same path as the        initial page resource LID path.        City, Sex . . . —All other elements define targeting qualifier    -   Names. They could be put in any row.        “String”, “Integer”, “Boolean”—are the only valid enumeration        values for 3^(rd) column, which inform User Agent that that's        the value type to compare.        For string type, User Agent compare the value as string, case        insensitive.        For Integer type, User Agent compare the value as integer.        For Boolean type, User Agent compare the value as Boolean type,        empty string means FALSE. Any other string means TRUE.        Any other unknown type Should be treated as String type.

Various approaches to ETV Targeting Engine Logic may be used inaccordance with the invention.

Two approaches for an ETV Targeting Engine to implement targeting logicare discussed below.

Targeting Approach 1—Platform software (User Agent) applies matchinglogic of “All”, “Any” or “None” to dispatch the matched EBIFapplication.

According to TQS described above, the matched application will belaunched. Otherwise the default EBIF application defined in normalApplication Information Descriptor's initial page resource will belaunched.

In such an embodiment an ETV User Agent operating on a STB isresponsible for retrieving the TQS data information including a targetedapplication URL, logical set operator value and/or matching name/valuepairs. Once the User Agent gets this information, it will download theapplication from an EBIF carousel, e.g., includes in the networkheadend, and run the targeted application.

Targeting Approach 2—A Single EBIF application applies the targetinglogic itself by querying addressability qualifiers by name. Then basedon the targeting rules, it can apply the matched resources to displaythe targeted UIs, etc.

In various embodiments system elements described herein are implementedusing one or more modules which are used to perform the stepscorresponding to one or more methods of the present invention, forexample, receiving user inputs, receiving a subscriber profileassociated with a customer device, e.g., a set top box, determining ifconditions relating to a set of target qualifier values corresponding toa portion of an application are satisfied by the one or more addressablequalifier values in received subscriber profile, executing at least aportion of an application on the customer device.

In the above described methods, in some embodiments, each step may beperformed by one or more different software instructions executed by acomputer processor, e.g., a central processing unit (CPU). At least onesystem implemented in accordance with the present invention includes ameans for implementing each of the various steps which are part of themethods of the present invention. Each means may be, e.g., aninstruction, processor, hardware circuit and/or combination of elementsused to implement a described step. In some embodiments various modulesused in the devices and/or systems described above can be implemented inhardware, e.g., as individual circuits. Alternatively, the modules maybe implemented in software and stored in the memory of thedevice/server/system. Completely hardware based or completely softwarebased modules may be used. However, it should be appreciated that anycombination of software and hardware (e.g., circuit implemented) modulesmay be used to implement various functions.

While described in the context of EBIF applications it should beappreciated that the methods and apparatus of the present invention arenot limited to EBI applications. In addition, while described in thecontext of STB applications, the methods and apparatus of the presentinvention can be used in other devices such as handheld content playbackdevices and/or other media playback devices. In such cases the targetqualifier sets would be received and stored in the device implementingthe method with the addressable qualifier set 300, 1200 including valuesbased on the user of the handheld or other media playback device.

Many of the above described methods or method steps can be implementedusing machine, e.g., computer, executable instructions, such assoftware, included in a non-transitory machine, e.g., computer, readablemedium used to control a machine, e.g., general purpose computer with orwithout additional hardware, to implement all or portions of the abovedescribed methods, e.g., in one or more nodes. The machine readablemedium may be, e.g., a memory device, e.g., RAM, floppy disk, etc.Accordingly, among other things, the present invention is directed to amachine-readable medium including machine executable instructions forcausing a machine, e.g., processor and associated hardware, to performone or more of the steps of the above-described method(s).

Numerous additional embodiments, within the scope of the presentinvention, will be apparent to those of ordinary skill in the art inview of the above description and the claims which follow.

What is claimed is:
 1. A method of operating a set top box, the methodcomprising: receiving from a server, at the set top box, a subscriberprofile associated with the set top box, including one or moreaddressable qualifier values, said one or more addressable qualifiervalues including at least one of an age value, sex value, income valueor service subscription value; receiving at least one target qualifiervalue corresponding to a first portion of an application; determining,at the set top box, if a condition relating to the at least one targetqualifier value corresponding to the first portion of the application issatisfied by the one or more addressable qualifier values in saidsubscriber profile; and executing, at the set top box, said firstportion of said application when it is determined that said conditionrelating to the set of target qualifier values corresponding to thefirst portion of said application is satisfied by said one or moreaddressable qualifier values in said subscriber profile.
 2. The methodof claim 1, wherein said first portion is one of a plurality ofdifferent user interface portions available for execution by the set topbox depending on a result of said determining if said condition issatisfied.
 3. The method of claim 1, wherein said first portion of saidapplication is a first user interface portion that is executed by theset top box in response to determining that said condition is satisfied.4. The method of claim 4, further comprising: receiving said applicationincluding said first portion of the application at said set top box inan MPEG transport stream.
 5. The method of claim 4, wherein said set topbox is a customer premise device; and wherein said subscriber profileincludes an income value.
 6. The method of claim 3, further comprising:receiving a set of target qualifier values corresponding to said firstportion of said application including said condition relating to saidset of target qualifier values in a private EBIF User Preference Item.7. The method of claim 6, wherein at least one received private EBIFuser preference item includes a first Organization Identifier.
 8. Themethod of claim 7, wherein said subscriber profile is associated withsaid first Organization Identifier, said addressable qualifier valuesincluded in said subscriber profile being used for comparison to targetqualifier values included in Private User Preference Items that includesaid first Organization Identifier but not for comparison to targetqualifier values in Private User Preference Items that do not includesaid first Organization Identifier.
 9. The method of claim 1, furthercomprising: receiving a set of target qualifier values corresponding tosaid first portion of said application and said conditions relating tosaid set of target qualifier values in private meta-data communicatedover a program channel used to communicate a video program, said atleast one target qualifier value being included in said set of targetqualifier values.
 10. The method of claim 1, wherein receiving at theset top box, the subscriber profile including one or more addressablequalifier values includes: receiving one or more addressable qualifiervalues on a periodic basis from a server in a service provider'sheadend.
 11. A set top box, including: an interface including a receiverconfigured to receive from a server, a subscriber profile associatedwith the set top box, including one or more addressable qualifiervalues, said one or more addressable qualifier values including at leastone of an age value, sex value, income value or service subscriptionvalue and receive at least one target qualifier value corresponding to afirst portion of an application; a determination module configured todetermine if a condition relating to the at least one target qualifiervalue corresponding to the first portion of the application is satisfiedby the one or more addressable qualifier values in said subscriberprofile; and an application control module configured to execute saidfirst portion of said application when it is determined that saidcondition relating to the set of target qualifier values correspondingto the first portion of said application is satisfied by said one ormore addressable qualifier values in said subscriber profile.
 12. Theset top box of claim 11, wherein said first portion of said applicationis one of a plurality of different user interface portions available forexecution by the set top box depending on a result of said determiningif said condition is satisfied.
 13. The set top box of claim 11, whereinsaid first portion of said application is a first user interface portionthat is executed in response to said determination module determiningthat said condition is satisfied.
 14. The set top box of claim 11,wherein said receiver is further configured to receive said applicationincluding said first portion of the application at said set top box inan MPEG transport stream.
 15. The set top box of claim 14, wherein saidset top box is a customer premise device; and wherein said subscriberprofile includes an income value.
 16. The set top box of claim 13,wherein said receiver is further configured to receive a set of targetqualifier values corresponding to said first portion of said applicationincluding said condition relating to said set of target qualifier valuesin a private EBIF User Preference Item.
 17. The set top box of claim 16,wherein at least one received private EBIF user preference item includesa first Organization Identifier.
 18. The set top box of claim 17,wherein said subscriber profile is associated with said firstOrganization Identifier, said addressable qualifier values included insaid subscriber profile being used for comparison to target qualifiervalues included in Private User Preference Items that include said firstOrganization Identifier but not for comparison to target qualifiervalues in Private User Preference Items that do not include said firstOrganization Identifier.
 19. The set top box of claim 11, wherein saidreceiver is further configured to receive a set of target qualifiervalues corresponding to said first portion of said application and saidconditions relating to said set of target qualifier values in privatemeta-data communicated over a program channel used to communicate avideo program, said at least one target qualifier value being includedin said set of target qualifier values.
 20. The set top box of claim 11,wherein said receiver is configured to receive one or more addressablequalifier values on a periodic basis from a server in a serviceprovider's headend, as part of receiving the subscriber profileincluding one or more addressable qualifier values.